{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Adversarial-Robustness-Toolbox for XGBoost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import xgboost as xgb\n",
    "\n",
    "from sklearn.datasets import load_iris\n",
    "\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "from art.estimators.classification import XGBoostClassifier\n",
    "from art.attacks.evasion import ZooAttack\n",
    "from art.utils import load_mnist\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1 Training XGBoost classifier and attacking with ART Zeroth Order Optimization attack"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_adversarial_examples(x_train, y_train, num_classes):\n",
    "\n",
    "    # Create and fit XGBoost model\n",
    "    num_round = 10\n",
    "    param = {'objective': 'multi:softprob', 'metric': 'multi_logloss', 'num_class': num_classes}\n",
    "    train_data = xgb.DMatrix(x_train, label=y_train)\n",
    "    evallist = [(train_data, 'eval'), (train_data, 'train')]\n",
    "    model = xgb.train(param, train_data, num_round, evallist)\n",
    "\n",
    "    # Create ART classifier for XGBoost\n",
    "    art_classifier = XGBoostClassifier(model=model, nb_features=x_train.shape[1], nb_classes=10)\n",
    "\n",
    "    # Create ART Zeroth Order Optimization attack\n",
    "    zoo = ZooAttack(classifier=art_classifier, confidence=0.0, targeted=False, learning_rate=1e-1, max_iter=20,\n",
    "                    binary_search_steps=10, initial_const=1e-3, abort_early=True, use_resize=False, \n",
    "                    use_importance=False, nb_parallel=1, batch_size=1, variable_h=0.2)\n",
    "    \n",
    "    # Generate adversarial samples with ART Zeroth Order Optimization attack\n",
    "    x_train_adv = zoo.generate(x_train)\n",
    "\n",
    "    return x_train_adv, model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 Utility functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_data(num_classes):\n",
    "    x_train, y_train = load_iris(return_X_y=True)\n",
    "    x_train = x_train[y_train < num_classes][:, [0, 1]]\n",
    "    y_train = y_train[y_train < num_classes]\n",
    "    x_train[:, 0][y_train == 0] *= 2\n",
    "    x_train[:, 1][y_train == 2] *= 2\n",
    "    x_train[:, 0][y_train == 0] -= 3\n",
    "    x_train[:, 1][y_train == 2] -= 2\n",
    "    \n",
    "    x_train[:, 0] = (x_train[:, 0] - 4) / (9 - 4)\n",
    "    x_train[:, 1] = (x_train[:, 1] - 1) / (6 - 1)\n",
    "    \n",
    "    return x_train, y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_results(model, x_train, y_train, x_train_adv, num_classes):\n",
    "    \n",
    "    fig, axs = plt.subplots(1, num_classes, figsize=(num_classes * 5, 5))\n",
    "\n",
    "    colors = ['orange', 'blue', 'green']\n",
    "\n",
    "    for i_class in range(num_classes):\n",
    "\n",
    "        # Plot difference vectors\n",
    "        for i in range(y_train[y_train == i_class].shape[0]):\n",
    "            x_1_0 = x_train[y_train == i_class][i, 0]\n",
    "            x_1_1 = x_train[y_train == i_class][i, 1]\n",
    "            x_2_0 = x_train_adv[y_train == i_class][i, 0]\n",
    "            x_2_1 = x_train_adv[y_train == i_class][i, 1]\n",
    "            if x_1_0 != x_2_0 or x_1_1 != x_2_1:\n",
    "                axs[i_class].plot([x_1_0, x_2_0], [x_1_1, x_2_1], c='black', zorder=1)\n",
    "\n",
    "        # Plot benign samples\n",
    "        for i_class_2 in range(num_classes):\n",
    "            axs[i_class].scatter(x_train[y_train == i_class_2][:, 0], x_train[y_train == i_class_2][:, 1], s=20,\n",
    "                                 zorder=2, c=colors[i_class_2])\n",
    "        axs[i_class].set_aspect('equal', adjustable='box')\n",
    "\n",
    "        # Show predicted probability as contour plot\n",
    "        h = .01\n",
    "        x_min, x_max = 0, 1\n",
    "        y_min, y_max = 0, 1\n",
    "\n",
    "        xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n",
    "\n",
    "        Z_proba = model.predict(xgb.DMatrix(np.c_[xx.ravel(), yy.ravel()]))\n",
    "        Z_proba = Z_proba[:, i_class].reshape(xx.shape)\n",
    "        im = axs[i_class].contourf(xx, yy, Z_proba, levels=[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n",
    "                                   vmin=0, vmax=1)\n",
    "        if i_class == num_classes - 1:\n",
    "            cax = fig.add_axes([0.95, 0.2, 0.025, 0.6])\n",
    "            plt.colorbar(im, ax=axs[i_class], cax=cax)\n",
    "\n",
    "        # Plot adversarial samples\n",
    "        for i in range(y_train[y_train == i_class].shape[0]):\n",
    "            x_1_0 = x_train[y_train == i_class][i, 0]\n",
    "            x_1_1 = x_train[y_train == i_class][i, 1]\n",
    "            x_2_0 = x_train_adv[y_train == i_class][i, 0]\n",
    "            x_2_1 = x_train_adv[y_train == i_class][i, 1]\n",
    "            if x_1_0 != x_2_0 or x_1_1 != x_2_1:\n",
    "                axs[i_class].scatter(x_2_0, x_2_1, zorder=2, c='red', marker='X')\n",
    "        axs[i_class].set_xlim((x_min, x_max))\n",
    "        axs[i_class].set_ylim((y_min, y_max))\n",
    "\n",
    "        axs[i_class].set_title('class ' + str(i_class))\n",
    "        axs[i_class].set_xlabel('feature 1')\n",
    "        axs[i_class].set_ylabel('feature 2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2 Example: Iris dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### legend\n",
    "- colored background: probability of class i\n",
    "- orange circles: class 1\n",
    "- blue circles: class 2\n",
    "- green circles: class 3\n",
    "- red crosses: adversarial samples for class i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[17:27:44] WARNING: /workspace/src/learner.cc:480: \n",
      "Parameters: { metric } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[0]\teval-merror:0.11000\ttrain-merror:0.11000\n",
      "[1]\teval-merror:0.11000\ttrain-merror:0.11000\n",
      "[2]\teval-merror:0.11000\ttrain-merror:0.11000\n",
      "[3]\teval-merror:0.10000\ttrain-merror:0.10000\n",
      "[4]\teval-merror:0.08000\ttrain-merror:0.08000\n",
      "[5]\teval-merror:0.08000\ttrain-merror:0.08000\n",
      "[6]\teval-merror:0.06000\ttrain-merror:0.06000\n",
      "[7]\teval-merror:0.06000\ttrain-merror:0.06000\n",
      "[8]\teval-merror:0.06000\ttrain-merror:0.06000\n",
      "[9]\teval-merror:0.06000\ttrain-merror:0.06000\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ZOO: 100%|██████████| 100/100 [00:04<00:00, 20.23it/s]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes = 2\n",
    "x_train, y_train = get_data(num_classes=num_classes)\n",
    "x_train_adv, model = get_adversarial_examples(x_train, y_train, num_classes)\n",
    "plot_results(model, x_train, y_train, x_train_adv, num_classes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[17:27:50] WARNING: /workspace/src/learner.cc:480: \n",
      "Parameters: { metric } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[0]\teval-merror:0.15333\ttrain-merror:0.15333\n",
      "[1]\teval-merror:0.14000\ttrain-merror:0.14000\n",
      "[2]\teval-merror:0.13333\ttrain-merror:0.13333\n",
      "[3]\teval-merror:0.14000\ttrain-merror:0.14000\n",
      "[4]\teval-merror:0.13333\ttrain-merror:0.13333\n",
      "[5]\teval-merror:0.12667\ttrain-merror:0.12667\n",
      "[6]\teval-merror:0.12000\ttrain-merror:0.12000\n",
      "[7]\teval-merror:0.11333\ttrain-merror:0.11333\n",
      "[8]\teval-merror:0.10000\ttrain-merror:0.10000\n",
      "[9]\teval-merror:0.11333\ttrain-merror:0.11333\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ZOO: 100%|██████████| 150/150 [00:07<00:00, 19.87it/s]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes = 3\n",
    "x_train, y_train = get_data(num_classes=num_classes)\n",
    "x_train_adv, model = get_adversarial_examples(x_train, y_train, num_classes)\n",
    "plot_results(model, x_train, y_train, x_train_adv, num_classes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3 Example: MNIST"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1 Load and transform MNIST dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "(x_train, y_train), (x_test, y_test), min_, max_ = load_mnist()\n",
    "\n",
    "n_samples_train = x_train.shape[0]\n",
    "n_features_train = x_train.shape[1] * x_train.shape[2] * x_train.shape[3]\n",
    "n_samples_test = x_test.shape[0]\n",
    "n_features_test = x_test.shape[1] * x_test.shape[2] * x_test.shape[3]\n",
    "\n",
    "x_train = x_train.reshape(n_samples_train, n_features_train)\n",
    "x_test = x_test.reshape(n_samples_test, n_features_test)\n",
    "\n",
    "y_train = np.argmax(y_train, axis=1)\n",
    "y_test = np.argmax(y_test, axis=1)\n",
    "\n",
    "n_samples_max = 200\n",
    "x_train = x_train[0:n_samples_max]\n",
    "y_train = y_train[0:n_samples_max]\n",
    "x_test = x_test[0:n_samples_max]\n",
    "y_test = y_test[0:n_samples_max]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.2 Train XGBoostClassifier classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[17:27:59] WARNING: /workspace/src/learner.cc:480: \n",
      "Parameters: { metric } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[0]\teval-merror:0.05500\ttrain-merror:0.05500\n",
      "[1]\teval-merror:0.04000\ttrain-merror:0.04000\n",
      "[2]\teval-merror:0.01500\ttrain-merror:0.01500\n",
      "[3]\teval-merror:0.01000\ttrain-merror:0.01000\n",
      "[4]\teval-merror:0.00500\ttrain-merror:0.00500\n",
      "[5]\teval-merror:0.00000\ttrain-merror:0.00000\n",
      "[6]\teval-merror:0.00000\ttrain-merror:0.00000\n",
      "[7]\teval-merror:0.00000\ttrain-merror:0.00000\n",
      "[8]\teval-merror:0.00000\ttrain-merror:0.00000\n",
      "[9]\teval-merror:0.00000\ttrain-merror:0.00000\n"
     ]
    }
   ],
   "source": [
    "num_round = 10\n",
    "param = {'objective': 'multi:softprob', 'metric': 'multi_logloss', 'num_class': 10}\n",
    "train_data = xgb.DMatrix(x_train, label=y_train)\n",
    "validation_data = train_data\n",
    "evallist=[(train_data, 'eval'), (train_data, 'train')]\n",
    "model = xgb.train(param, train_data, num_round, evallist)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.3 Create and apply Zeroth Order Optimization Attack with ART"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "art_classifier = XGBoostClassifier(model=model, nb_features=x_train.shape[1], nb_classes=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "zoo = ZooAttack(classifier=art_classifier, confidence=0.0, targeted=False, learning_rate=1e-1, max_iter=100,\n",
    "                binary_search_steps=20, initial_const=1e-3, abort_early=True, use_resize=False, \n",
    "                use_importance=False, nb_parallel=10, batch_size=1, variable_h=0.05)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ZOO: 100%|██████████| 200/200 [05:51<00:00,  1.76s/it]\n"
     ]
    }
   ],
   "source": [
    "x_train_adv = zoo.generate(x_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ZOO: 100%|██████████| 200/200 [05:09<00:00,  1.55s/it]\n"
     ]
    }
   ],
   "source": [
    "x_test_adv = zoo.generate(x_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.4 Evaluate XGBoostClassifier on benign and adversarial samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Training Score: 1.0000\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict(xgb.DMatrix(x_train))\n",
    "score = np.sum(y_train == np.argmax(y_pred, axis=1)) / y_train.shape[0]\n",
    "print(\"Benign Training Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_train[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Training Predicted Label: 5\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict(xgb.DMatrix(x_train[0:1, :])), axis=1)\n",
    "print(\"Benign Training Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Training Score: 0.5900\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict(xgb.DMatrix(x_train_adv))\n",
    "score = np.sum(y_train == np.argmax(y_pred, axis=1)) / y_train.shape[0]\n",
    "print(\"Adversarial Training Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_train_adv[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Training Predicted Label: 8\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict(xgb.DMatrix(x_train_adv[0:1, :])), axis=1)\n",
    "print(\"Adversarial Training Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Test Score: 0.6450\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict(xgb.DMatrix(x_test))\n",
    "score = np.sum(y_test == np.argmax(y_pred, axis=1)) / y_test.shape[0]\n",
    "print(\"Benign Test Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_test[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Test Predicted Label: 7\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict(xgb.DMatrix(x_test[0:1, :])), axis=1)\n",
    "print(\"Benign Test Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Test Score: 0.3750\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict(xgb.DMatrix(x_test_adv))\n",
    "score = np.sum(y_test == np.argmax(y_pred, axis=1)) / y_test.shape[0]\n",
    "print(\"Adversarial Test Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_test_adv[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Test Predicted Label: 3\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict(xgb.DMatrix(x_test_adv[0:1, :])), axis=1)\n",
    "print(\"Adversarial Test Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
